#ifndef APPLICATION_HPP
#define APPLICATION_HPP

#include <app/application_base.hpp>

struct UiData;

class PiInfoApp final : public IApplication
{
public:
    PiInfoApp(int argc, const char **argv);

protected:
    bool initialize () override;
    void cleanup () override;
    void update (pi_time_t delta, pi_time_t total) override;

private:
    void render_ui(f32 delta);

    void register_services();

    void clear_services();

    void setup_style(float scaling);

    UiData *ui_data();

    struct PiInfoAppData;
    PiInfoAppData *d{};
};

#endif // APPLICATION_HPP
